//
//  main.c
//  20. isValid
//
//  Created by edz on 2020/7/6.
//  Copyright © 2020 edz. All rights reserved.
//

/*
 给定一个只包括 '('，')'，'{'，'}'，'['，']' 的字符串，判断字符串是否有效。

 有效字符串需满足：

 左括号必须用相同类型的右括号闭合。
 左括号必须以正确的顺序闭合。
 */

#include <stdio.h>
#include <string.h>

bool isValid(char * s){
    char a[10000];
    char temp;
    int count = -1;
    for (int i = 0; i < strlen(s); i++) {
        if (s[i] == '(' || s[i] == '[' || s[i] == '{') {
            count++;
            a[count] = s[i];
        }
        else {
            if (count < 0) {
                return false;
            }
            temp = a[count];
            if (s[i] == ')') {
                if (temp != '(') {
                    return false;
                }
                else
                    count--;
            }
            if (s[i] == ']') {
                if (temp != '[') {
                    return false;
                }
                else
                    count--;
            }
            if (s[i] == '}') {
                if (temp != '{') {
                    return false;
                }
                else
                    count--;
            }
        }
    }
    if (count >= 0) {
        return false;
    }
    return true;
}
